[INFO] cloning repository https://github.com/arcat0v0/nano-assistant
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/arcat0v0/nano-assistant" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farcat0v0%2Fnano-assistant", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farcat0v0%2Fnano-assistant'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e06bb05c63c0b9263c491518d857d387fbc179f0
[INFO] testing arcat0v0/nano-assistant against try#b8e88e5ddf5521a9f43ee3f62a702388c713e4bb for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farcat0v0%2Fnano-assistant" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/arcat0v0/nano-assistant
[INFO] finished tweaking git repo https://github.com/arcat0v0/nano-assistant
[INFO] tweaked toml for git repo https://github.com/arcat0v0/nano-assistant written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/arcat0v0/nano-assistant on toolchain b8e88e5ddf5521a9f43ee3f62a702388c713e4bb
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/arcat0v0/nano-assistant already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 90245d7f0f5a670c351b93800ac72bb764b07717bf6d583aa0b9394340ac250f
[INFO] running `Command { std: "docker" "start" "-a" "90245d7f0f5a670c351b93800ac72bb764b07717bf6d583aa0b9394340ac250f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "90245d7f0f5a670c351b93800ac72bb764b07717bf6d583aa0b9394340ac250f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90245d7f0f5a670c351b93800ac72bb764b07717bf6d583aa0b9394340ac250f", kill_on_drop: false }`
[INFO] [stdout] 90245d7f0f5a670c351b93800ac72bb764b07717bf6d583aa0b9394340ac250f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 63de029cfea143bc4f434ba5e2221fec7454c739865cd6ef9b6bc6538aa189fd
[INFO] running `Command { std: "docker" "start" "-a" "63de029cfea143bc4f434ba5e2221fec7454c739865cd6ef9b6bc6538aa189fd", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling openssl-sys v0.9.112
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling web_atoms v0.1.3
[INFO] [stderr]    Compiling markup5ever v0.14.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling match_token v0.1.0
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling dtoa v1.0.11
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling dtoa-short v0.3.5
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling selectors v0.26.0
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling strict v0.2.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling cssparser v0.34.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling servo_arc v0.4.3
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling tokio v1.51.0
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling markup5ever v0.16.2
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling html5ever v0.31.0
[INFO] [stderr]    Compiling crokey-proc_macros v1.4.0
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling crokey v1.4.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling html5ever v0.29.1
[INFO] [stderr]    Compiling coolor v1.1.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling minimad v0.14.0
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling ego-tree v0.10.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling lazy-regex-proc_macros v3.6.0
[INFO] [stderr]    Compiling html2text v0.14.4
[INFO] [stderr]    Compiling uuid v1.23.0
[INFO] [stderr]    Compiling scraper v0.22.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling lazy-regex v3.6.0
[INFO] [stderr]    Compiling directories v5.0.1
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling termimad v0.34.1
[INFO] [stderr]    Compiling rustyline v14.0.0
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling nano-assistant v0.3.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: method `maybe_try_alternate_message_url` is never used
[INFO] [stdout]    --> src/mcp/transport.rs:463:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | impl SseTransport {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 463 |     fn maybe_try_alternate_message_url(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 40s
[INFO] running `Command { std: "docker" "inspect" "63de029cfea143bc4f434ba5e2221fec7454c739865cd6ef9b6bc6538aa189fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "63de029cfea143bc4f434ba5e2221fec7454c739865cd6ef9b6bc6538aa189fd", kill_on_drop: false }`
[INFO] [stdout] 63de029cfea143bc4f434ba5e2221fec7454c739865cd6ef9b6bc6538aa189fd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 12c455e8d55b0255f2716f20a99bf80882864c6688c7d867c69a2fd1adc693dd
[INFO] running `Command { std: "docker" "start" "-a" "12c455e8d55b0255f2716f20a99bf80882864c6688c7d867c69a2fd1adc693dd", kill_on_drop: false }`
[INFO] [stderr]    Compiling sdd v3.0.10
[INFO] [stderr]    Compiling serial_test_derive v3.4.0
[INFO] [stderr]    Compiling fastrand v2.4.0
[INFO] [stdout] warning: method `maybe_try_alternate_message_url` is never used
[INFO] [stdout]    --> src/mcp/transport.rs:463:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | impl SseTransport {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 463 |     fn maybe_try_alternate_message_url(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling scc v2.4.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling serial_test v3.4.0
[INFO] [stderr]    Compiling nano-assistant v0.3.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `EchoTool` is never constructed
[INFO] [stdout]     --> src/agent/loop_.rs:1010:12
[INFO] [stdout]      |
[INFO] [stdout] 1010 |     struct EchoTool;
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `maybe_try_alternate_message_url` is never used
[INFO] [stdout]    --> src/mcp/transport.rs:463:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | impl SseTransport {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 463 |     fn maybe_try_alternate_message_url(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 22.73s
[INFO] running `Command { std: "docker" "inspect" "12c455e8d55b0255f2716f20a99bf80882864c6688c7d867c69a2fd1adc693dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "12c455e8d55b0255f2716f20a99bf80882864c6688c7d867c69a2fd1adc693dd", kill_on_drop: false }`
[INFO] [stdout] 12c455e8d55b0255f2716f20a99bf80882864c6688c7d867c69a2fd1adc693dd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4532b8a26104f01bdc941379d6341a7d21ff2803db622c4dac3659bad44f2894
[INFO] running `Command { std: "docker" "start" "-a" "4532b8a26104f01bdc941379d6341a7d21ff2803db622c4dac3659bad44f2894", kill_on_drop: false }`
[INFO] [stderr] warning: method `maybe_try_alternate_message_url` is never used
[INFO] [stderr]    --> src/mcp/transport.rs:463:8
[INFO] [stderr]     |
[INFO] [stderr] 291 | impl SseTransport {
[INFO] [stderr]     | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 463 |     fn maybe_try_alternate_message_url(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `nano-assistant` (lib) generated 1 warning
[INFO] [stderr] warning: struct `EchoTool` is never constructed
[INFO] [stderr]     --> src/agent/loop_.rs:1010:12
[INFO] [stderr]      |
[INFO] [stderr] 1010 |     struct EchoTool;
[INFO] [stderr]      |            ^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `maybe_try_alternate_message_url` is never used
[INFO] [stderr]    --> src/mcp/transport.rs:463:8
[INFO] [stderr]     |
[INFO] [stderr] 291 | impl SseTransport {
[INFO] [stderr]     | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 463 |     fn maybe_try_alternate_message_url(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `nano-assistant` (lib test) generated 2 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.80s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/nano_assistant-19af06dcadedd819)
[INFO] [stdout] 
[INFO] [stdout] running 439 tests
[INFO] [stdout] test agent::dispatcher::tests::create_dispatcher_selects_xml ... ok
[INFO] [stdout] test agent::dispatcher::tests::create_dispatcher_selects_native ... ok
[INFO] [stdout] test agent::dispatcher::tests::xml_extracts_text_around_tool_calls ... ok
[INFO] [stdout] test agent::dispatcher::tests::xml_malformed_json_defaults_to_empty_args ... ok
[INFO] [stdout] test agent::dispatcher::tests::xml_parses_single_tool_call ... ok
[INFO] [stdout] test agent::dispatcher::tests::xml_format_results_includes_error_status ... ok
[INFO] [stdout] test agent::dispatcher::tests::xml_format_results_contains_tool_result_tags ... ok
[INFO] [stdout] test agent::dispatcher::tests::xml_strips_think_tags ... ok
[INFO] [stdout] test agent::dispatcher::tests::xml_no_calls_returns_full_text ... ok
[INFO] [stdout] test agent::loop_::tests::agent_builds_system_prompt_on_first_turn ... ok
[INFO] [stdout] test agent::dispatcher::tests::native_parses_tool_calls_from_response ... ok
[INFO] [stdout] test agent::loop_::tests::agent_creates_with_native_dispatcher_for_native ... ok
[INFO] [stdout] test agent::loop_::tests::agent_creates_with_xml_dispatcher_for_non_native ... ok
[INFO] [stdout] test agent::loop_::tests::conversation_history_clear ... ok
[INFO] [stdout] test agent::loop_::tests::conversation_history_trim_preserves_system ... ok
[INFO] [stdout] test agent::loop_::tests::conversation_history_trim_without_system ... ok
[INFO] [stdout] test agent::loop_::tests::trailing_tool_prefix_ignores_normal_text ... ok
[INFO] [stdout] test agent::loop_::tests::trailing_tool_prefix_detects_partial_tool_markup ... ok
[INFO] [stdout] test agent::prompt::tests::days_to_date_epoch ... ok
[INFO] [stdout] test agent::prompt::tests::days_to_date_recent ... ok
[INFO] [stdout] test agent::loop_::tests::conversation_history_push_and_len ... ok
[INFO] [stdout] test agent::dispatcher::tests::native_format_results_returns_tool_message ... ok
[INFO] [stdout] test agent::loop_::tests::file_edit_mcp_changes_trigger_auto_reload_notice ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_includes_runtime_context ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_runtime_context_section_placed_after_system_info ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_omits_protocol_for_native ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_system_info_preserves_multiline_content ... ok
[INFO] [stdout] test agent::streaming::tests::loading_indicator_transitions_cleanly ... ok
[INFO] [stdout] hello worldtest agent::prompt::tests::prompt_includes_system_info_when_provided ... ok
[INFO] [stdout] test agent::streaming::tests::stream_printer_accumulates_content ... Hello world! This is a test.ok
[INFO] [stdout] test agent::prompt::tests::prompt_contains_datetime ... ok
[INFO] [stdout] test agent::streaming::tests::stream_printer_accumulates_multiple_chunks ... ok
[INFO] [stdout] firsttesttest agent::prompt::tests::prompt_contains_tools_section ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_contains_safety_section ... ok
[INFO] [stdout] test agent::streaming::tests::stream_printer_take_accumulated_clears ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_includes_xml_protocol_for_non_native ... ok
[INFO] [stdout] test agent::streaming::tests::stream_printer_writes_content ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_includes_skills_section ... ok
[INFO] [stdout] test agent::streaming::tests::stream_printer_writes_progress ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_command_execution_enforces_execution_first_and_brief_reporting ... ok
[INFO] [stdout] visible texttest agent::streaming::tests::stream_printer_ignores_progress_for_accumulation ... ok
[INFO] [stdout] test cli::commands::tests::cli_skills_subcommand_parses ... ok
[INFO] [stdout] test cli::commands::tests::cli_chat_mode_flag ... ok
[INFO] [stdout] test cli::commands::tests::cli_chat_verbose_flag ... ok
[INFO] [stdout] test cli::commands::tests::cli_chat_debug_flag ... ok
[INFO] [stdout] test cli::commands::tests::cli_chat_config_flag ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_contains_system_steward_policy_section ... ok
[INFO] [stdout] test cli::commands::tests::memory_md_path_returns_config_dir ... ok
[INFO] [stdout] test cli::commands::tests::load_config_invalid_toml_returns_default ... ok
[INFO] [stdout] test cli::commands::tests::load_config_nonexistent_returns_default ... ok
[INFO] [stdout] test cli::commands::tests::cli_chat_config_path_flag ... ok
[INFO] [stdout] test cli::commands::tests::prompt_text_empty_returns_none ... ok
[INFO] [stdout] test cli::commands::tests::prompt_text_multiple_words_joined_with_space ... ok
[INFO] [stdout] test cli::commands::tests::resolve_debug_mode_uses_config_when_cli_off ... ok
[INFO] [stdout] test cli::commands::tests::resolve_debug_mode_cli_takes_precedence ... ok
[INFO] [stdout] test cli::commands::tests::resolve_security_mode_cli_override_precedence ... ok
[INFO] [stdout] test cli::commands::tests::resolve_security_mode_invalid_cli_falls_back_to_config ... ok
[INFO] [stdout] test cli::commands::tests::cli_none_command_is_interactive ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_mentions_windows_interactive_limit ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_system_steward_policy_includes_environment_rules ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_empty_when_no_tools_and_native ... ok
[INFO] [stdout] test cli::commands::tests::resolve_api_key_config_key_takes_precedence ... ok
[INFO] [stdout] test cli::commands::tests::prompt_text_single_word_returns_some ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_omits_system_info_when_none ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_contains_self_management_section ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_system_info_section_placed_after_datetime ... ok
[INFO] [stdout] test config::schema::tests::config_default_verifies_all_nested_defaults ... ok
[INFO] [stdout] test config::schema::tests::behavior_config_default ... ok
[INFO] [stdout] test config::schema::tests::default_config_path_contains_expected_segments ... ok
[INFO] [stdout] test config::schema::tests::mcp_transport_default_is_stdio ... ok
[INFO] [stdout] test cli::commands::tests::resolve_security_mode_no_cli_uses_config_mode ... ok
[INFO] [stdout] test config::schema::tests::mcp_config_default ... ok
[INFO] [stdout] test config::schema::tests::provider_config_default ... ok
[INFO] [stdout] test config::schema::tests::security_config_default ... ok
[INFO] [stdout] test config::schema::tests::memory_config_default ... ok
[INFO] [stdout] test config::schema::tests::skills_config_default ... ok
[INFO] [stdout] test config::schema::tests::skills_config_extra_paths_default_empty ... ok
[INFO] [stdout] test config::schema::tests::toml_deserialization_empty_config_gives_all_defaults ... ok
[INFO] [stdout] test cli::commands::tests::resolve_api_key_falls_back_to_env_var ... ok
[INFO] [stdout] test config::schema::tests::toml_deserialization_full_config ... ok
[INFO] [stdout] test config::schema::tests::toml_deserialization_mcp_server_with_env ... ok
[INFO] [stdout] test config::schema::tests::toml_deserialization_partial_config_merges_with_defaults ... ok
[INFO] [stdout] test config::schema::tests::toml_deserialization_skills_extra_paths ... ok
[INFO] [stdout] test config::schema::tests::toml_deserialization_mcp_config ... ok
[INFO] [stdout] test console::tests::args_summary_empty ... ok
[INFO] [stdout] test console::tests::args_summary_file_read ... ok
[INFO] [stdout] test console::tests::args_summary_shell ... ok
[INFO] [stdout] test console::tests::format_tool_call_line_success ... ok
[INFO] [stdout] test console::tests::format_tool_summary_contains_count ... ok
[INFO] [stdout] test console::tests::format_tool_pending_no_args ... ok
[INFO] [stdout] test knowledge::mediawiki::tests::wikitext_links ... ok
[INFO] [stdout] test knowledge::mediawiki::tests::wikitext_skips_templates ... ok
[INFO] [stdout] test knowledge::mediawiki::tests::wikitext_headings ... ok
[INFO] [stdout] test knowledge::mediawiki::tests::strip_html_tags_basic ... ok
[INFO] [stdout] test knowledge::mediawiki::tests::wikitext_bold_italic ... ok
[INFO] [stdout] test knowledge::moinmoin::tests::extract_section_basic ... ok
[INFO] [stdout] test knowledge::moinmoin::tests::extract_section_not_found_returns_full ... ok
[INFO] [stdout] test agent::prompt::tests::prompt_system_steward_policy_includes_privilege_preferences ... ok
[INFO] [stdout] test knowledge::tool::tests::truncate_at_paragraph_boundary ... ok
[INFO] [stdout] test knowledge::tool::tests::truncate_falls_back_to_newline ... ok
[INFO] [stdout] test knowledge::tool::tests::truncate_short_text_unchanged ... ok
[INFO] [stdout] test knowledge::types::tests::page_content_roundtrip ... ok
[INFO] [stdout] test knowledge::types::tests::config_defaults ... ok
[INFO] [stdout] test mcp::client::tests::connect_all_empty_gives_zero_servers ... ok
[INFO] [stdout] test mcp::client::tests::empty_registry_call_tool_unknown_name_returns_error ... ok
[INFO] [stdout] test mcp::client::tests::connect_all_nonfatal_on_single_failure ... ok
[INFO] [stdout] test knowledge::types::tests::search_result_roundtrip ... ok
[INFO] [stdout] test mcp::client::tests::empty_registry_tool_names_is_empty ... ok
[INFO] [stdout] test mcp::client::tests::empty_registry_is_empty ... ok
[INFO] [stdout] test mcp::client::tests::empty_registry_get_tool_def_returns_none ... ok
[INFO] [stdout] test mcp::client::tests::connect_nonexistent_command_fails_cleanly ... ok
[INFO] [stdout] test mcp::client::tests::http_transport_requires_url ... ok
[INFO] [stdout] test mcp::client::tests::sse_transport_requires_url ... ok
[INFO] [stdout] test mcp::client::tests::tool_name_prefix_format ... ok
[INFO] [stdout] test mcp::deferred::tests::activated_set_rejects_ambiguous_suffix ... ok
[INFO] [stdout] test mcp::deferred::tests::activated_set_resolves_unique_suffix ... ok
[INFO] [stdout] test mcp::deferred::tests::activated_set_tracks_activation ... ok
[INFO] [stdout] test mcp::deferred::tests::build_deferred_section_empty_when_no_stubs ... ok
[INFO] [stdout] test mcp::deferred::tests::build_deferred_section_multiple_servers ... ok
[INFO] [stdout] test mcp::deferred::tests::build_deferred_section_includes_tool_search_instruction ... ok
[INFO] [stdout] test mcp::deferred::tests::build_deferred_section_lists_names ... ok
[INFO] [stdout] test mcp::deferred::tests::get_by_name_returns_correct_stub ... ok
[INFO] [stdout] test mcp::deferred::tests::stub_defaults_description_when_none ... ok
[INFO] [stdout] test mcp::deferred::tests::stub_uses_description_from_def ... ok
[INFO] [stdout] test mcp::protocol::tests::error_response_deserializes_with_code_and_message ... ok
[INFO] [stdout] test mcp::protocol::tests::error_response_with_data_field ... ok
[INFO] [stdout] test mcp::protocol::tests::mcp_protocol_version_constant_is_correct ... ok
[INFO] [stdout] test mcp::protocol::tests::notification_has_no_id_field_in_serialized_json ... ok
[INFO] [stdout] test mcp::protocol::tests::notification_omits_id ... ok
[INFO] [stdout] test mcp::protocol::tests::jsonrpc_error_codes_match_spec ... ok
[INFO] [stdout] test mcp::protocol::tests::request_new_produces_numeric_id ... ok
[INFO] [stdout] test mcp::deferred::tests::keyword_search_ranks_by_hits ... ok
[INFO] [stdout] test mcp::deferred::tests::search_across_multiple_servers ... ok
[INFO] [stdout] test mcp::protocol::tests::request_serializes_with_id ... ok
[INFO] [stdout] test mcp::protocol::tests::request_params_included_when_present ... ok
[INFO] [stdout] test mcp::protocol::tests::response_deserializes ... ok
[INFO] [stdout] test mcp::protocol::tests::tool_def_description_is_optional ... ok
[INFO] [stdout] test mcp::protocol::tests::tool_def_deserializes_input_schema ... ok
[INFO] [stdout] test mcp::protocol::tests::tools_list_result_deserializes_multiple_tools ... ok
[INFO] [stdout] test mcp::protocol::tests::tools_list_result_with_empty_tools_array ... ok
[INFO] [stdout] test mcp::tool::tests::description_falls_back_to_mcp_tool_when_none ... ok
[INFO] [stdout] test mcp::tool::tests::description_returns_def_description ... ok
[INFO] [stdout] test mcp::protocol::tests::response_round_trip_via_serde ... ok
[INFO] [stdout] test mcp::tool::tests::execute_handles_non_object_args_without_panic ... ok
[INFO] [stdout] test mcp::tool::tests::execute_strips_approved_field_from_object_args ... ok
[INFO] [stdout] test mcp::tool::tests::execute_returns_non_fatal_error_for_unknown_tool ... ok
[INFO] [stdout] test mcp::tool::tests::name_returns_prefixed_name ... ok
[INFO] [stdout] test mcp::tool::tests::parameters_schema_returns_input_schema ... ok
[INFO] [stdout] test mcp::tool::tests::execute_success_sets_success_true_and_output ... ok
[INFO] [stdout] test mcp::tool::tests::spec_returns_all_three_fields ... ok
[INFO] [stdout] test mcp::tool_search::tests::empty_query_returns_error ... ok
[INFO] [stdout] test mcp::tool_search::tests::keyword_search_finds_match ... ok
[INFO] [stdout] test mcp::tool_search::tests::multiple_servers_stubs_all_searchable ... ok
[INFO] [stdout] test mcp::tool_search::tests::reactivation_is_idempotent ... ok
[INFO] [stdout] test mcp::tool_search::tests::keyword_search_no_matches ... ok
[INFO] [stdout] test mcp::tool_search::tests::select_activates_and_persists_across_calls ... ok
[INFO] [stdout] test mcp::tool_search::tests::tool_metadata ... ok
[INFO] [stdout] test mcp::tool_search::tests::select_nonexistent_tool_reports_not_found ... ok
[INFO] [stdout] test mcp::transport::tests::create_transport_http_without_url_fails ... ok
[INFO] [stdout] test mcp::transport::tests::create_transport_sse_without_url_fails ... ok
[INFO] [stdout] test mcp::transport::tests::derive_message_url_appends_when_no_sse_segment ... ok
[INFO] [stdout] test mcp::transport::tests::derive_message_url_message_path_variant ... ok
[INFO] [stdout] test mcp::transport::tests::derive_message_url_replaces_sse_segment_with_messages ... ok
[INFO] [stdout] test mcp::transport::tests::derive_message_url_returns_none_for_invalid_url ... ok
[INFO] [stdout] test mcp::transport::tests::extract_json_empty_input_returns_empty_trimmed ... ok
[INFO] [stdout] test mcp::transport::tests::create_transport_stdio_fails_without_valid_command ... ok
[INFO] [stdout] test mcp::transport::tests::extract_json_plain_json_returned_unchanged ... ok
[INFO] [stdout] test mcp::transport::tests::extract_json_skips_comment_lines ... ok
[INFO] [stdout] test knowledge::tests::create_moinmoin_source ... ok
[INFO] [stdout] test knowledge::moinmoin::tests::moinmoin_source_name ... ok
[INFO] [stdout] test knowledge::tests::create_mediawiki_source ... ok
[INFO] [stdout] test knowledge::tool::tests::search_tool_metadata ... ok
[INFO] [stdout] test mcp::transport::tests::looks_like_sse_text_detects_data_prefix ... ok
[INFO] [stdout] test mcp::transport::tests::looks_like_sse_text_detects_embedded_data_line ... ok
[INFO] [stdout] test mcp::transport::tests::looks_like_sse_text_detects_event_prefix ... ok
[INFO] [stdout] test knowledge::tests::create_web_source_for_unknown_engine ... ok
[INFO] [stdout] test mcp::transport::tests::looks_like_sse_text_plain_json_is_not_sse ... ok
[INFO] [stdout] test mcp::transport::tests::parse_endpoint_absolute_http_url_returned_as_is ... ok
[INFO] [stdout] test mcp::transport::tests::parse_endpoint_json_object_with_endpoint_key ... ok
[INFO] [stdout] test mcp::transport::tests::parse_endpoint_relative_path_resolved_against_base ... ok
[INFO] [stdout] test mcp::transport::tests::parse_jsonrpc_response_rejects_whitespace_only ... ok
[INFO] [stdout] test mcp::transport::tests::parse_jsonrpc_response_with_error_result ... ok
[INFO] [stdout] test mcp::transport::tests::test_extract_json_from_sse_data_no_space ... ok
[INFO] [stdout] test mcp::transport::tests::parse_endpoint_absolute_https_url_returned_as_is ... ok
[INFO] [stdout] test mcp::transport::tests::test_extract_json_from_sse_skips_bom_and_leading_whitespace ... ok
[INFO] [stdout] test mcp::transport::tests::test_extract_json_from_sse_uses_last_event_with_data ... ok
[INFO] [stdout] test mcp::transport::tests::test_extract_json_from_sse_with_event_and_id ... ok
[INFO] [stdout] test knowledge::tests::source_to_tools_produces_two_tools ... ok
[INFO] [stdout] test mcp::transport::tests::test_extract_json_from_sse_multiline_data ... ok
[INFO] [stdout] test mcp::transport::tests::test_parse_jsonrpc_response_text_handles_plain_json ... ok
[INFO] [stdout] test mcp::transport::tests::test_parse_jsonrpc_response_text_handles_sse_framed_json ... ok
[INFO] [stdout] test mcp::transport::tests::test_parse_jsonrpc_response_text_rejects_empty_payload ... ok
[INFO] [stdout] test mcp::transport::tests::test_sse_transport_requires_url ... ok
[INFO] [stdout] test mcp::transport::tests::test_transport_default_is_stdio ... ok
[INFO] [stdout] test mcp::transport::tests::test_http_transport_requires_url ... ok
[INFO] [stdout] test memory::markdown::tests::test_add_and_get ... ok
[INFO] [stdout] test memory::markdown::tests::test_chrono_now_format ... ok
[INFO] [stdout] test knowledge::web::tests::web_source_name ... ok
[INFO] [stdout] test memory::markdown::tests::test_delete_nonexistent ... ok
[INFO] [stdout] test memory::markdown::tests::test_empty_count ... ok
[INFO] [stdout] test memory::markdown::tests::test_empty_query ... ok
[INFO] [stdout] test memory::markdown::tests::test_custom_category ... ok
[INFO] [stdout] test memory::markdown::tests::test_health_check ... ok
[INFO] [stdout] test memory::markdown::tests::test_add_multiple ... ok
[INFO] [stdout] test memory::markdown::tests::test_name ... ok
[INFO] [stdout] test memory::markdown::tests::test_persist_creates_file ... ok
[INFO] [stdout] test memory::markdown::tests::test_delete ... ok
[INFO] [stdout] test memory::markdown::tests::test_persist_noop_when_exists ... ok
[INFO] [stdout] test memory::markdown::tests::test_query_by_key ... ok
[INFO] [stdout] test memory::markdown::tests::test_query_by_session ... ok
[INFO] [stdout] test memory::markdown::tests::test_query_limit ... ok
[INFO] [stdout] test memory::markdown::tests::test_query_keyword ... ok
[INFO] [stdout] test memory::traits::tests::memory_category_display ... ok
[INFO] [stdout] test memory::traits::tests::memory_category_serde_roundtrip ... ok
[INFO] [stdout] test platform::tests::config_path_ends_with_config_toml ... ok
[INFO] [stdout] test memory::traits::tests::memory_entry_roundtrip ... ok
[INFO] [stdout] test platform::tests::current_platform_returns_consistent_reference ... ok
[INFO] [stdout] test memory::markdown::tests::test_query_no_match ... ok
[INFO] [stdout] test platform::tests::expand_tilde_absolute_path_unchanged ... ok
[INFO] [stdout] test platform::tests::memory_dir_ends_with_memory ... ok
[INFO] [stdout] test platform::unix::tests::agents_skills_dir_contains_agents_skills ... ok
[INFO] [stdout] test platform::tests::skills_dir_ends_with_skills ... ok
[INFO] [stdout] test platform::tests::memory_md_path_ends_with_memory_md ... ok
[INFO] [stdout] test platform::unix::tests::expand_tilde_absolute_path_unchanged ... ok
[INFO] [stdout] test platform::unix::tests::expand_tilde_relative_path_unchanged ... ok
[INFO] [stdout] test knowledge::tool::tests::read_tool_metadata ... ok
[INFO] [stdout] test platform::unix::tests::config_dir_contains_nano_assistant ... ok
[INFO] [stdout] test platform::unix::tests::shell_command_is_sh ... ok
[INFO] [stdout] test platform::windows::tests::agents_skills_dir_uses_home_agents_layout ... ok
[INFO] [stdout] test platform::windows::tests::config_dir_uses_roaming_appdata_layout ... ok
[INFO] [stdout] test platform::windows::tests::expand_tilde_resolves_home_prefix ... ok
[INFO] [stdout] test platform::windows::tests::pipe_process_supports_prompt_response ... ok
[INFO] [stdout] test memory::markdown::tests::test_file_is_valid_markdown ... ok
[INFO] [stdout] test platform::windows::tests::shell_command_uses_cmd ... ok
[INFO] [stdout] test providers::traits::tests::chat_response_helpers ... ok
[INFO] [stdout] test providers::traits::tests::provider_capabilities_default ... ok
[INFO] [stdout] test providers::traits::tests::stream_chunk_constructors ... ok
[INFO] [stdout] test providers::traits::tests::chat_message_constructors ... ok
[INFO] [stdout] test providers::traits::tests::tool_call_serialization ... ok
[INFO] [stdout] test render::tests::test_count_rendered_lines_basic ... ok
[INFO] [stdout] test mcp::transport::tests::http_transport_updates_session_id_from_response_headers ... ok
[INFO] [stdout] test render::tests::test_count_rendered_lines_empty ... ok
[INFO] [stdout] test render::tests::test_count_rendered_lines_from_render ... ok
[INFO] [stdout] test render::tests::test_render_code_block_only_response ... ok
[INFO] [stdout] test render::tests::test_render_contains_ansi ... ok
[INFO] [stdout] test knowledge::mediawiki::tests::mediawiki_source_name ... ok
[INFO] [stdout] test render::tests::test_render_deeply_nested_formatting ... ok
[INFO] [stdout] test render::tests::test_render_empty_input ... ok
[INFO] [stdout] test render::tests::test_render_markdown_fallback_malformed ... ok
[INFO] [stdout] test render::tests::test_render_markdown_basic ... ok
[INFO] [stdout] test render::tests::test_render_markdown_fallback_no_panic ... ok
[INFO] [stdout] test render::tests::test_render_markdown_code_blocks ... ok
[INFO] [stdout] test render::tests::test_render_markdown_lists ... ok
[INFO] [stdout] test render::tests::test_render_markdown_tables ... ok
[INFO] [stdout] test security::tests::check_confirm_allows_everything ... ok
[INFO] [stdout] test render::tests::test_render_table_wider_than_terminal ... ok
[INFO] [stdout] test security::tests::check_direct_allows_everything ... ok
[INFO] [stdout] test security::tests::check_whitelist_allows_matching ... ok
[INFO] [stdout] test security::tests::check_whitelist_denies_missing_command ... ok
[INFO] [stdout] test security::tests::check_whitelist_denies_non_matching ... ok
[INFO] [stdout] test security::tests::confirm_mode_denies_when_user_rejects ... ok
[INFO] [stdout] test security::tests::confirm_mode_allows_when_user_accepts ... ok
[INFO] [stdout] test security::tests::from_config_override_none_uses_config ... ok
[INFO] [stdout] test security::tests::direct_mode_executes_immediately ... ok
[INFO] [stdout] test security::tests::from_config_with_override ... ok
[INFO] [stdout] test security::tests::mode_display_roundtrip ... ok
[INFO] [stdout] test security::tests::mode_from_str_invalid ... ok
[INFO] [stdout] test security::tests::mode_from_str_valid ... ok
[INFO] [stdout] test security::tests::from_config_parses_mode ... ok
[INFO] [stdout] test render::tests::test_render_markdown_to_stdout_empty ... ok
[INFO] [stdout] test security::tests::secure_tool_whitelist_blocks ... ok
[INFO] [stdout] test mcp::transport::tests::create_transport_sse_with_url_succeeds ... ok
[INFO] [stdout] test security::tests::whitelist_mode_blocks_denied_command ... ok
[INFO] [stdout] test security::tests::secure_tool_delegates_to_inner ... ok
[INFO] [stdout] test security::whitelist::tests::empty_pattern ... ok
[INFO] [stdout] test security::tests::whitelist_mode_allows_matching_command ... ok
[INFO] [stdout] test security::whitelist::tests::exact_match ... ok
[INFO] [stdout] test security::whitelist::tests::multiple_wildcards ... ok
[INFO] [stdout] test security::whitelist::tests::glob_token_matching ... ok
[INFO] [stdout] test security::whitelist::tests::whitelist_check_allows_matching ... ok
[INFO] [stdout] test security::whitelist::tests::whitelist_check_denies_non_matching ... ok
[INFO] [stdout] test security::whitelist::tests::wildcard_at_end ... ok
[INFO] [stdout] test security::whitelist::tests::wildcard_in_middle ... ok
[INFO] [stdout] test render::tests::test_render_large_response ... ok
[INFO] [stdout] test mcp::transport::tests::create_transport_http_with_url_succeeds ... ok
[INFO] [stdout] test security::whitelist::tests::empty_whitelist_denies_all ... ok
[INFO] [stdout] test mcp::transport::tests::http_transport_ignores_empty_session_id_header ... ok
[INFO] [stdout] test mcp::transport::tests::http_transport_no_session_header_leaves_none ... ok
[INFO] [stdout] test skills::audit::tests::audit_rejects_chained_commands_in_manifest ... ok
[INFO] [stdout] test skills::audit::tests::audit_allows_missing_cross_skill_reference_with_bare_filename ... ok
[INFO] [stdout] test skills::audit::tests::audit_allows_missing_cross_skill_reference_with_dot_slash ... ok
[INFO] [stdout] test skills::audit::tests::audit_accepts_safe_skill ... ok
[INFO] [stdout] test skills::audit::tests::audit_allows_missing_cross_skill_reference_with_parent_dir ... ok
[INFO] [stdout] test skills::audit::tests::audit_rejects_high_risk_patterns ... ok
[INFO] [stdout] test skills::audit::tests::audit_allows_python_shebang_file_when_early_text_contains_sh ... ok
[INFO] [stdout] test skills::audit::tests::is_cross_skill_reference_detection ... ok
[INFO] [stdout] test skills::audit::tests::audit_allows_existing_cross_skill_reference ... ok
[INFO] [stdout] test skills::audit::tests::audit_allows_shell_script_files_when_enabled ... ok
[INFO] [stdout] test skills::audit::tests::audit_rejects_missing_local_markdown_file ... ok
[INFO] [stdout] test skills::audit::tests::audit_rejects_markdown_escape_links ... ok
[INFO] [stdout] test skills::audit::tests::audit_rejects_shell_script_files ... ok
[INFO] [stdout] test skills::multi_dir_tests::load_skills_multi_primary_wins_on_duplicate ... ok
[INFO] [stdout] test skills::testing::tests::parse_comment_and_empty_lines ... ok
[INFO] [stdout] test skills::multi_dir_tests::load_skills_multi_skips_nonexistent_dirs ... ok
[INFO] [stdout] test skills::testing::tests::parse_invalid_line_missing_parts ... ok
[INFO] [stdout] test skills::testing::tests::parse_valid_test_line ... ok
[INFO] [stdout] test skills::testing::tests::parse_line_with_spaces_in_pattern ... ok
[INFO] [stdout] test skills::multi_dir_tests::load_skills_multi_merges_directories ... ok
[INFO] [stdout] test skills::testing::tests::pattern_matches_empty ... ok
[INFO] [stdout] test skills::testing::tests::pattern_matches_substring ... ok
[INFO] [stdout] test skills::testing::tests::pattern_matches_regex ... ok
[INFO] [stdout] test skills::testing::tests::test_skill_with_failing_test ... ok
[INFO] [stdout] test skills::testing::tests::test_skill_without_test_file ... ok
[INFO] [stdout] test skills::testing::tests::test_result_aggregation ... ok
[INFO] [stdout] test skills::testing::tests::test_all_skills_finds_skills_with_tests ... ok
[INFO] [stdout] test skills::testing::tests::test_truncate_output ... ok
[INFO] [stdout] test skills::tests::clawhub_download_url_building ... ok
[INFO] [stdout] test skills::tests::builtin_knowledge_sources_include_linux_wikis ... ok
[INFO] [stdout] test skills::tests::is_git_scp_source_detection ... ok
[INFO] [stdout] test skills::tests::is_git_source_detection ... ok
[INFO] [stdout] test skills::tests::extract_description_finds_first_non_heading ... ok
[INFO] [stdout] test skills::tests::is_clawhub_source_detection ... ok
[INFO] [stdout] test skills::tests::load_skill_md_with_frontmatter ... ok
[INFO] [stdout] test skills::tests::load_skills_from_directory_nonexistent ... ok
[INFO] [stdout] test skills::tests::load_skill_md_with_temp_file ... ok
[INFO] [stdout] test skills::tests::normalize_skill_name_converts_dashes ... ok
[INFO] [stdout] test skills::tests::load_skills_from_directory_ignores_files ... ok
[INFO] [stdout] test skills::testing::tests::test_skill_exit_code_mismatch ... ok
[INFO] [stdout] test skills::testing::tests::test_skill_with_echo ... ok
[INFO] [stdout] test skills::tests::parse_simple_frontmatter_empty ... ok
[INFO] [stdout] test skills::tests::parse_simple_frontmatter_inline_tags ... ok
[INFO] [stdout] test skills::tests::load_skill_toml_with_temp_file ... ok
[INFO] [stdout] test skills::tests::parse_simple_frontmatter_with_all_fields ... ok
[INFO] [stdout] test skills::tests::load_skills_from_directory_empty ... ok
[INFO] [stdout] test skills::tests::skills_to_prompt_empty ... ok
[INFO] [stdout] test skills::tests::skills_to_prompt_escapes_xml ... ok
[INFO] [stdout] test skills::tests::skills_to_prompt_generates_valid_xml ... ok
[INFO] [stdout] test skills::tests::split_skill_frontmatter_with_frontmatter ... ok
[INFO] [stdout] test skills::tests::split_skill_frontmatter_without_frontmatter ... ok
[INFO] [stdout] test system_info::tests::detect_installed_tools_has_many_entries ... ok
[INFO] [stdout] test system_info::tests::format_as_markdown_includes_all_sections ... ok
[INFO] [stdout] test system_info::tests::format_as_markdown_includes_tool_path ... ok
[INFO] [stdout] test system_info::tests::format_for_prompt_respects_limit_with_many_tools ... ok
[INFO] [stdout] test system_info::tests::test_format_as_markdown_empty_tools ... ok
[INFO] [stdout] test system_info::tests::test_format_as_markdown_starts_with_header ... ok
[INFO] [stdout] test system_info::tests::test_format_as_markdown_includes_key_fields ... ok
[INFO] [stdout] test system_info::tests::test_format_as_markdown_has_all_sections ... ok
[INFO] [stdout] test system_info::tests::test_format_for_prompt_contains_key_info ... ok
[INFO] [stdout] test system_info::tests::test_format_for_prompt_minimal ... ok
[INFO] [stdout] test system_info::tests::test_format_for_prompt_no_tools_line_when_empty ... ok
[INFO] [stdout] test system_info::tests::test_format_as_markdown_tools_are_sorted ... ok
[INFO] [stdout] test system_info::tests::test_format_for_prompt_truncation ... ok
[INFO] [stdout] test system_info::tests::test_format_for_prompt_within_char_limit ... ok
[INFO] [stdout] test system_info::tests::test_parse_os_release ... ok
[INFO] [stdout] test system_info::tests::test_parse_os_release_minimal ... ok
[INFO] [stdout] test system_info::tests::tool_info_stores_version_and_path ... ok
[INFO] [stdout] test tools::content_search::tests::empty_pattern_rejected ... ok
[INFO] [stdout] test system_info::tests::test_detect_single_tool_timeout ... ok
[INFO] [stdout] test tools::content_search::tests::missing_param ... ok
[INFO] [stdout] test system_info::tests::detect_single_tool_returns_path ... ok
[INFO] [stdout] test system_info::tests::test_detect_single_tool_missing ... ok
[INFO] [stdout] test mcp::transport::tests::http_transport_apply_session_header_noop_when_no_session ... ok
[INFO] [stdout] test tools::file_edit::tests::empty_old_string_rejected ... ok
[INFO] [stdout] test tools::content_search::tests::case_insensitive ... ok
[INFO] [stdout] test tools::content_search::tests::include_filter ... ok
[INFO] [stdout] test tools::file_edit::tests::multiple_matches_rejected ... ok
[INFO] [stdout] test tools::file_edit::tests::not_found ... ok
[INFO] [stdout] test tools::content_search::tests::no_matches ... ok
[INFO] [stdout] test tools::file_read::tests::missing_path_param ... ok
[INFO] [stdout] test tools::content_search::tests::finds_matches ... ok
[INFO] [stdout] test tools::file_edit::tests::delete_via_empty_new_string ... ok
[INFO] [stdout] test tools::file_read::tests::nonexistent_file ... ok
[INFO] [stdout] test tools::file_edit::tests::rejects_builtin_skill_edits ... ok
[INFO] [stdout] test tools::file_write::tests::missing_params ... ok
[INFO] [stdout] test tools::file_read::tests::reads_existing_file ... ok
[INFO] [stdout] test tools::file_edit::tests::replaces_single_match ... ok
[INFO] [stdout] test tools::glob_search::tests::finds_files ... ok
[INFO] [stdout] test tools::glob_search::tests::invalid_pattern ... ok
[INFO] [stdout] test tools::glob_search::tests::missing_param ... ok
[INFO] [stdout] test tools::file_read::tests::offset_and_limit ... ok
[INFO] [stdout] test tools::pty_shell::tests::missing_command_param ... ok
[INFO] [stdout] test tools::glob_search::tests::no_matches ... ok
[INFO] [stdout] test tools::file_write::tests::creates_parent_dirs ... ok
[INFO] [stdout] test tools::pty_shell::tests::tool_metadata ... ok
[INFO] [stdout] test tools::file_write::tests::writes_file ... ok
[INFO] [stdout] test tools::shell::tests::executes_simple_command ... ok
[INFO] [stdout] test tools::shell::tests::captures_stderr ... ok
[INFO] [stdout] test tools::shell::tests::captures_exit_code ... ok
[INFO] [stdout] test tools::shell::tests::missing_command_param ... ok
[INFO] [stdout] test tools::skill_http::tests::parameters_schema_empty_when_no_args ... ok
[INFO] [stdout] test tools::skill_http::tests::parameters_schema_includes_args ... ok
[INFO] [stdout] test tools::skill_http::tests::tool_name_is_dotted ... ok
[INFO] [stdout] test tools::pty_shell::tests::handles_interaction ... ok
[INFO] [stdout] test tools::pty_shell::tests::executes_simple_echo ... ok
[INFO] [stdout] test tools::skill_http::tests::url_parameter_substitution ... ok
[INFO] [stdout] test tools::skill_tool::tests::command_with_no_substitution_works ... ok
[INFO] [stdout] test tools::skill_tool::tests::parameters_schema_includes_args ... ok
[INFO] [stdout] test tools::skill_tool::tests::parameters_schema_empty_when_no_args ... ok
[INFO] [stdout] test tools::skill_tool::tests::timeout_triggers_error ... ok
[INFO] [stdout] test tools::skill_tool::tests::tool_name_is_dotted ... ok
[INFO] [stdout] test tools::traits::tests::execute_returns_expected_output ... ok
[INFO] [stdout] test tools::skill_http::tests::non_http_url_rejected ... ok
[INFO] [stdout] test tools::traits::tests::spec_uses_tool_metadata_and_schema ... ok
[INFO] [stdout] test tools::traits::tests::tool_result_serialization_roundtrip ... ok
[INFO] [stdout] test tools::web_fetch::tests::is_binary_detects_binary_content_types ... ok
[INFO] [stdout] test tools::web_fetch::tests::is_html_detects_html_content_types ... ok
[INFO] [stdout] test tools::skill_tool::tests::echo_command_with_arg_substitution ... ok
[INFO] [stdout] test tools::skill_tool::tests::failing_command_returns_error ... ok
[INFO] [stdout] test tools::web_fetch::tests::truncate_noop_when_under_limit ... ok
[INFO] [stdout] test tools::web_fetch::tests::truncate_respects_limit ... ok
[INFO] [stdout] test tools::web_search::tests::clean_ddg_url_passthrough_normal_url ... ok
[INFO] [stdout] test tools::web_search::tests::clean_ddg_url_extracts_target ... ok
[INFO] [stdout] test tools::web_search::tests::format_results_empty ... ok
[INFO] [stdout] test tools::web_search::tests::format_results_with_items ... ok
[INFO] [stdout] test tools::web_search::tests::html_decode_handles_entities ... ok
[INFO] [stdout] test tools::web_search::tests::parse_ddg_results_extracts_from_sample_html ... ok
[INFO] [stdout] test tools::web_search::tests::parse_ddg_results_respects_max ... ok
[INFO] [stdout] test tools::web_search::tests::strip_html_tags_removes_tags ... ok
[INFO] [stdout] test tools::web_search::tests::url_decode_handles_common_encodings ... ok
[INFO] [stdout] test tui::tests::memory_command_is_recognized ... ok
[INFO] [stdout] test tui::tests::plain_prompt_is_passed_through ... ok
[INFO] [stdout] test tui::tests::rescan_is_recognized ... ok
[INFO] [stdout] test tui::tests::slash_quit_is_recognized ... ok
[INFO] [stdout] test tui::tests::unknown_slash_command_is_handled ... ok
[INFO] [stdout] test mcp::transport::tests::http_transport_injects_session_id_header_when_available ... ok
[INFO] [stdout] test cli::commands::tests::load_or_create_memory_md_creates_file ... ok
[INFO] [stdout] test platform::unix::tests::default_methods_derive_from_config_dir ... ok
[INFO] [stdout] test tools::web_fetch::tests::missing_url_param_returns_error ... ok
[INFO] [stdout] test tools::web_search::tests::missing_query_param_returns_error ... ok
[INFO] [stdout] test tools::web_search::tests::spec_metadata ... ok
[INFO] [stdout] test tools::web_fetch::tests::spec_metadata ... ok
[INFO] [stdout] test cli::commands::tests::load_memory_md_handles_readonly_fs ... ok
[INFO] [stdout] test system_info::tests::test_detect_installed_tools_graceful_on_missing ... ok
[INFO] [stdout] test platform::unix::tests::unix_paths_do_not_fall_back_to_literal_tilde ... ok
[INFO] [stdout] test skills::tests::init_skills_creates_readme ... ok
[INFO] [stdout] test cli::commands::tests::memory_md_lifecycle_read_existing_returns_content ... ok
[INFO] [stdout] test platform::unix::tests::expand_tilde_with_home_prefix ... ok
[INFO] [stdout] test tools::shell::tests::timeout_kills_command ... ok
[INFO] [stdout] test tools::pty_shell::tests::timeout_kills_process has been running for over 60 seconds
[INFO] [stdout] test tools::pty_shell::tests::timeout_kills_process ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 439 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 61.01s
[INFO] [stdout] 
[INFO] [stderr] 
[2K[2m⏳ thinking...[0m
[2Kprogresstool: running...tool: done     Running unittests src/bin/na.rs (/opt/rustwide/target/debug/deps/na-a31c611d2f928a30)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-55baf9be853bdba4)
[INFO] [stdout] 
[INFO] [stdout] running 40 tests
[INFO] [stdout] test config_default_deserializes_with_all_defaults ... ok
[INFO] [stdout] test agent_creates_with_mock_provider ... ok
[INFO] [stdout] test config_deserializes_from_empty_toml ... ok
[INFO] [stdout] test config_deserializes_partial_toml ... ok
[INFO] [stdout] test config_deserializes_full_toml ... ok
[INFO] [stdout] test cli_parses_no_prompt_interactive ... ok
[INFO] [stdout] test cli_parses_verbose_flag ... ok
[INFO] [stdout] test cli_parses_long_verbose_flag ... ok
[INFO] [stdout] test cli_prompt_text_joins_words ... ok
[INFO] [stdout] test cli_parses_config_flag ... ok
[INFO] [stdout] test cli_parses_combined_flags_and_prompt ... ok
[INFO] [stdout] test cli_parses_mode_flag ... ok
[INFO] [stdout] test cli_parses_config_path_flag ... ok
[INFO] [stdout] test cli_parses_prompt_only ... ok
[INFO] [stdout] test agent_turn_returns_mock_response ... ok
[INFO] [stdout] test security_manager_from_config_cli_override_none_uses_config ... ok
[INFO] [stdout] test secure_tool_direct_mode_allows_execution ... ok
[INFO] [stdout] test memory_persist_creates_file_when_empty ... ok
[INFO] [stdout] test agent_turn_accumulates_history ... ok
[INFO] [stdout] test secure_tool_confirm_mode_allows_when_user_accepts ... ok
[INFO] [stdout] test secure_tool_confirm_mode_denies_when_user_rejects ... ok
[INFO] [stdout] test secure_tool_preserves_name_and_description ... ok
[INFO] [stdout] test security_manager_from_config_no_override ... ok
[INFO] [stdout] test secure_tool_whitelist_mode_allows_matching ... ok
[INFO] [stdout] test security_manager_from_config_with_cli_override ... ok
[INFO] [stdout] test secure_tool_whitelist_mode_blocks_non_matching ... ok
[INFO] [stdout] test security_mode_resolves_from_config_whitelist ... ok
[INFO] [stdout] test memory_add_query_delete_persist_flow ... ok
[INFO] [stdout] test security_mode_case_insensitive_parsing ... ok
[INFO] [stdout] test agent_clear_history_resets_state ... ok
[INFO] [stdout] test skill_name_normalization ... ok
[INFO] [stdout] test memory_query_by_session_id ... ok
[INFO] [stdout] test skill_source_detection ... ok
[INFO] [stdout] test security_mode_resolves_from_config_default ... ok
[INFO] [stdout] test skill_lifecycle_toml ... ok
[INFO] [stdout] test skill_audit_rejects_unsafe ... ok
[INFO] [stdout] test skill_lifecycle_md ... ok
[INFO] [stdout] test default_tools_returns_nine_tools_with_correct_names ... ok
[INFO] [stdout] test agent_creates_with_tools_and_memory ... ok
[INFO] [stdout] test default_tools_have_valid_specs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests nano_assistant
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4532b8a26104f01bdc941379d6341a7d21ff2803db622c4dac3659bad44f2894", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4532b8a26104f01bdc941379d6341a7d21ff2803db622c4dac3659bad44f2894", kill_on_drop: false }`
[INFO] [stdout] 4532b8a26104f01bdc941379d6341a7d21ff2803db622c4dac3659bad44f2894
